
package com.yixun.qfbao.api.service;

import com.yixun.qfbao.apidto.AgencyPartnerPermission;
import com.yixun.qfbao.apidto.DeptPermissionBindDto;
import com.yixun.qfbao.apidto.SetDeptPermissionReqDto;
import com.yixun.qfbao.model.dto.DeptPermissionDto;

import java.util.List;
import java.util.Map;

public interface DeptPermissionService {

    Map<String, String> getDPLevelByBelongsId(Long belongsId);

    DeptPermissionBindDto getBindDeptPermission(DeptPermissionDto entity);

    void setDeptPermission(SetDeptPermissionReqDto entity);

    void setAgencyDeptPermission(SetDeptPermissionReqDto entity);

    void resetDeptPermission(Long belongsId);

    /**
     * 获取用户机构权限
     * @param partnerId
     * @return
     */
    List<Long> getPartnerDeptPermission(Long partnerId);


    /**
     * 获取用户机构权限(小程序使用没有缓存)
     * @param partnerId
     * @return
     */
    List<Long> getPartnerDeptPermissionForWx(Long partnerId);
    
    /**
     * 添加个人的部门权限
     */
    void addPersonalDeptPermission(Long partnerId,  Long roleId, Long companyId, Long deptId);

    /**
     * 初始化部门权限
     */
    void initDeptPermissionCode(Long companyId);

    AgencyPartnerPermission getAgencyPartnerPermission(Long partnerId);

    void cleanCompanyCacheByPartner(Long partnerId);
    
    void cleanCompanyCacheByCompanyUuid(String companyUuid);
}
